//用方法来数组遍历
//夏梓豪
//2023/04/01

package code_fangfadesangelianxi;

public class test1 {
    public static void main(String[] args) {
        //定义数组
        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = {1,5,6,8,4,9};
        int[] arr3 = {1,2,3,4,5,6,7,8,9,10};
        //调用方法遍历数组
        printArr(arr1);

        System.out.println();

        //调用方法求数组中的最大值
        int max = getMax(arr2);
        System.out.println(max);

        //调用方法判断数字是否在数组里面
        boolean a = contains(arr2,6);
        System.out.println(a);
        boolean b = contains(arr2,10);
        System.out.println(b);

        //调用方法来拷贝数组
        int[] arr4 = copyOfRange(arr3,3,7);
        for (int i = 0; i < arr4.length; i++) {
            System.out.print(arr4[i]+"\t");
        }
    }

    public static void printArr(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length-1){
                System.out.print(arr[i]);
            }else{
                System.out.print(arr[i]+",");
            }
        }
        System.out.print("]");
    }

    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }

    public static boolean contains(int[] arr,int number) {
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == number){
                return true;
            }
        }
        //什么时候才能断定数字，在数组中是不存在的？
        //当数组里面所有的数据全部比较完毕后，才能断定
        return false;
        //注意：return关键字和break关键字的区别
        //return：其实跟循环没什么关系，跟方法有关系，一是表示结束方法，二是返回结果
        //如果方法执行到了return，那么整个方法全部结束，里面的循环也会随之结束
    }

    public static int[] copyOfRange(int[] arr,int from,int to) {
        //1，定义数组
        int[] newArr = new int[to - from];
        //2,把原始数组arr中的from到to上对应的元素，直接拷贝到newArr中

        //伪造索引
        int index = 0;
        for (int i = from; i < to; i++) {
            //格式：数组名【索引】 = 数据值；
            newArr[index] = arr[i];
            index++;
        }

        //3，把数组返回
        return newArr;
    }
}
